postgresql中终止正在执行的SQL语句
在Linux系统中可以使用kill [pid]
的方式强制删除进程,但对于修改数据表的语句来说,这样可能导致postgresql进入recovery mode,这样会导致锁表。
Postgresql的运行情况可以从pg_stat_activity
查看,这是一个位于pg_catalog
schema中的视图。其中部分字段如下
datname
: 数据库名称pid
: 命令的PIDquery_start
: SQL语句开始的时间query
: SQL语句的内容client_addr
: 执行SQL语句的客户端IP地址
对于修改表的操作,例如update、insert等,可以使用pg_catalog
schema中的函数pg_terminate_backend
函数完成
SELECT pg_terminate_backend(PID);